/*
 * Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
 * for details. All rights reserved. Use of this source code is governed by a
 * BSD-style license that can be found in the LICENSE file.
 */
/**
 * @assertion Int32x4 lessThanOrEqual(Float32x4 other)
 * Relational less than or equal.
 * @description Checks that the returned [Int32x4]
 * contains correct values.
 * @author msyabro
 */

import "dart:typed_data";
import "../../../Utils/expect.dart";

check(op1, op2, expected) {
  var res = op1.lessThanOrEqual(op2);
  Expect.equals(expected.x, res.x);
  Expect.equals(expected.y, res.y);
  Expect.equals(expected.z, res.z);
  Expect.equals(expected.w, res.w);
}

main() {
  check(new Float32x4(.0, .0, .0, .0), new Float32x4(.0, .0, .0, .0), new Int32x4.bool(true, true, true, true));
  check(new Float32x4(-1.0, -1.0, -.02, -1.32), new Float32x4(.0, .0, .0, .0), new Int32x4.bool(true, true, true, true));
  check(new Float32x4(1e-30, 1.23e-40, .02, 1e-10), new Float32x4(.0, .0, .0, .0), new Int32x4.bool(false, false, false, false));
  check(new Float32x4(1.0, 2.0, 1e-3, .04e-2), new Float32x4(1.0, 10.0, 1e-2, 0.23e40), new Int32x4.bool(true, true, true, true));
}